﻿
namespace IdeaNMR.Shared.Utils
{
    public interface ICopyable
    {
        /// <summary>
        /// Copyes the data into the target.
        /// </summary>
        /// <param name="target">Where to copy.</param>
        /// <param name="IncludeUniqueFields">Copy uniqure fields when copying objects. If true, the uniqueId of the object must be coppied, 
        /// else the new uniqueId should be created for target object.
        /// Must influense any unique fields, such as Timestamp etc.
        /// </param>
        /// <exception cref="System.ArgumentNullException">Thrown when target is null.</exception>
        /// <exception cref="System.ArgumentException">Thrown when the type of target is not type of this object.</exception>
        void CopyTo(object target, bool IncludeUniqueFields);
    }
}
